﻿#include "DANodePalette.h"

static DANodePalette s_default_node_palette = DANodePalette();

DANodePalette::DANodePalette()
{
    m_colors << QColor(0, 0, 0) // RoleText
             << QColor(78, 103, 200) // RoleEdge
             << QColor(255, 255, 255) // RoleBackground
             << QColor(70, 175, 147) // RoleLink
             << QColor(93, 206, 175) // RoleLinkLine
             << QColor(255, 128, 33) << QColor(241, 65, 36);
}

const DANodePalette &DANodePalette::getGlobalPalette()
{
    return (s_default_node_palette);
}

void DANodePalette::setGlobalPalette(DANodePalette pl)
{
    s_default_node_palette = pl;
}

const QColor &DANodePalette::getGlobalColor(DANodePalette::Role r)
{
    return (s_default_node_palette.getColor(r));
}

const QColor &DANodePalette::getGlobalTextColor()
{
    return (s_default_node_palette.getTextColor());
}

const QColor &DANodePalette::getGlobalEdgeColor()
{
    return (s_default_node_palette.getEdgeColor());
}

const QColor &DANodePalette::getGlobalBackgroundColor()
{
    return (s_default_node_palette.getBackgroundColor());
}

const QColor &DANodePalette::getGlobalLinkPointColor()
{
    return (s_default_node_palette.getLinkPointColor());
}

const QColor &DANodePalette::getGlobalLinkLineColor()
{
    return (s_default_node_palette.getLinkLineColor());
}

const QColor &DANodePalette::getColor(DANodePalette::Role r) const
{
    return (m_colors[int(r)]);
}

const QColor &DANodePalette::getTextColor() const
{
    return (getColor(RoleText));
}

const QColor &DANodePalette::getEdgeColor() const
{
    return (getColor(RoleEdge));
}

const QColor &DANodePalette::getBackgroundColor() const
{
    return (getColor(RoleBackground));
}

const QColor &DANodePalette::getLinkPointColor() const
{
    return (getColor(RoleLinkPoint));
}

const QColor &DANodePalette::getLinkLineColor() const
{
    return (getColor(RoleLinkLine));
}
